<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>knet: E:/knet-git/knet/knet/misc.c 文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">knet
   &#160;<span id="projectnumber">1.4.5</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>首页</span></a></li>
      <li><a href="modules.html"><span>模块</span></a></li>
      <li><a href="annotated.html"><span>结构体</span></a></li>
      <li class="current"><a href="files.html"><span>文件</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="搜索" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>文件列表</span></a></li>
      <li><a href="globals.html"><span>全局定义</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_4e74998c9a9305a116abc25fcf9a1edb.html">knet-git</a></li><li class="navelem"><a class="el" href="dir_a1c045b39f32066568ae964b52db514f.html">knet</a></li><li class="navelem"><a class="el" href="dir_f76d03789f0b12416cfffea59e2ed47d.html">knet</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">结构体</a> &#124;
<a href="#typedef-members">类型定义</a> &#124;
<a href="#enum-members">枚举</a> &#124;
<a href="#func-members">函数</a>  </div>
  <div class="headertitle">
<div class="title">misc.c 文件参考</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stdarg.h&gt;</code><br />
<code>#include &lt;linux/tcp.h&gt;</code><br />
<code>#include &quot;<a class="el" href="a00090_source.html">misc.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="a00077_source.html">loop.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="a00054_source.html">channel_ref.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="a00045_source.html">address.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="a00103_source.html">timer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="a00073_source.html">list.h</a>&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
结构体</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html">_thread_runner_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html">_thread_param_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html">_lock_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
类型定义</h2></td></tr>
<tr class="memitem:a93730d5de4a5f4dbe3013b02b051df62"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00089_a2583618f1d6afdd0085a96f59b45d9bd.html#a2583618f1d6afdd0085a96f59b45d9bd">_loop_type_e</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a93730d5de4a5f4dbe3013b02b051df62.html#a93730d5de4a5f4dbe3013b02b051df62">loop_type_e</a></td></tr>
<tr class="separator:a93730d5de4a5f4dbe3013b02b051df62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaca514c4c0b391f40ccc7e8c68fd4c21"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00036.html">_thread_param_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_aaca514c4c0b391f40ccc7e8c68fd4c21.html#aaca514c4c0b391f40ccc7e8c68fd4c21">thread_param_t</a></td></tr>
<tr class="separator:aaca514c4c0b391f40ccc7e8c68fd4c21"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
枚举</h2></td></tr>
<tr class="memitem:a2583618f1d6afdd0085a96f59b45d9bd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a2583618f1d6afdd0085a96f59b45d9bd.html#a2583618f1d6afdd0085a96f59b45d9bd">_loop_type_e</a> { <a class="el" href="a00089_a2583618f1d6afdd0085a96f59b45d9bd.html#a2583618f1d6afdd0085a96f59b45d9bda0451d8a119ce5fe669f2f2b454920dd4">loop_type_loop</a> = 1, 
<a class="el" href="a00089_a2583618f1d6afdd0085a96f59b45d9bd.html#a2583618f1d6afdd0085a96f59b45d9bda6b68505ad966bb72c76dfde12d79938f">loop_type_timer</a>
 }</td></tr>
<tr class="separator:a2583618f1d6afdd0085a96f59b45d9bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:a71cc84510563a2981ed5a47f86ccb7f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a71cc84510563a2981ed5a47f86ccb7f6.html#a71cc84510563a2981ed5a47f86ccb7f6">socket_create</a> ()</td></tr>
<tr class="memdesc:a71cc84510563a2981ed5a47f86ccb7f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">建立一个套接字  <a href="a00089_a71cc84510563a2981ed5a47f86ccb7f6.html#a71cc84510563a2981ed5a47f86ccb7f6">更多...</a><br /></td></tr>
<tr class="separator:a71cc84510563a2981ed5a47f86ccb7f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ec48de5c316491b068fbb3c76b21c91"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a1ec48de5c316491b068fbb3c76b21c91.html#a1ec48de5c316491b068fbb3c76b21c91">socket_connect</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd, const char *ip, int port)</td></tr>
<tr class="memdesc:a1ec48de5c316491b068fbb3c76b21c91"><td class="mdescLeft">&#160;</td><td class="mdescRight">发起异步connect  <a href="a00089_a1ec48de5c316491b068fbb3c76b21c91.html#a1ec48de5c316491b068fbb3c76b21c91">更多...</a><br /></td></tr>
<tr class="separator:a1ec48de5c316491b068fbb3c76b21c91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ab6846ac2d5706e2357ee17a0178bc3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a5ab6846ac2d5706e2357ee17a0178bc3.html#a5ab6846ac2d5706e2357ee17a0178bc3">socket_bind_and_listen</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd, const char *ip, int port, int backlog)</td></tr>
<tr class="memdesc:a5ab6846ac2d5706e2357ee17a0178bc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">bind &amp; listen  <a href="a00089_a5ab6846ac2d5706e2357ee17a0178bc3.html#a5ab6846ac2d5706e2357ee17a0178bc3">更多...</a><br /></td></tr>
<tr class="separator:a5ab6846ac2d5706e2357ee17a0178bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3db4aef68a8961e075d700673594f9d3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a3db4aef68a8961e075d700673594f9d3.html#a3db4aef68a8961e075d700673594f9d3">socket_accept</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd)</td></tr>
<tr class="memdesc:a3db4aef68a8961e075d700673594f9d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">accept  <a href="a00089_a3db4aef68a8961e075d700673594f9d3.html#a3db4aef68a8961e075d700673594f9d3">更多...</a><br /></td></tr>
<tr class="separator:a3db4aef68a8961e075d700673594f9d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10039d2f0e29d4b0d3b0cab3c7a1b63c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a10039d2f0e29d4b0d3b0cab3c7a1b63c.html#a10039d2f0e29d4b0d3b0cab3c7a1b63c">socket_set_reuse_addr_on</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd)</td></tr>
<tr class="separator:a10039d2f0e29d4b0d3b0cab3c7a1b63c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd473c5857939c252deb9bfa30da8366"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_afd473c5857939c252deb9bfa30da8366.html#afd473c5857939c252deb9bfa30da8366">socket_set_non_blocking_on</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd)</td></tr>
<tr class="separator:afd473c5857939c252deb9bfa30da8366"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3972a34b212a86a683834f05ed37034f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a3972a34b212a86a683834f05ed37034f.html#a3972a34b212a86a683834f05ed37034f">socket_close</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd)</td></tr>
<tr class="memdesc:a3972a34b212a86a683834f05ed37034f"><td class="mdescLeft">&#160;</td><td class="mdescRight">关闭套接字（强制关闭）  <a href="a00089_a3972a34b212a86a683834f05ed37034f.html#a3972a34b212a86a683834f05ed37034f">更多...</a><br /></td></tr>
<tr class="separator:a3972a34b212a86a683834f05ed37034f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac38b97ead3e51bdc95124910f3657c8a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_ac38b97ead3e51bdc95124910f3657c8a.html#ac38b97ead3e51bdc95124910f3657c8a">socket_set_nagle_off</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd)</td></tr>
<tr class="separator:ac38b97ead3e51bdc95124910f3657c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3f2774813f23e084f5268d51e6c4983"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_ae3f2774813f23e084f5268d51e6c4983.html#ae3f2774813f23e084f5268d51e6c4983">socket_set_linger_off</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd)</td></tr>
<tr class="separator:ae3f2774813f23e084f5268d51e6c4983"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeaa8128921474edb7c47efb40c8383ff"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_aeaa8128921474edb7c47efb40c8383ff.html#aeaa8128921474edb7c47efb40c8383ff">socket_set_keepalive_off</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd)</td></tr>
<tr class="separator:aeaa8128921474edb7c47efb40c8383ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d090d32a5cdf8b76b9e8eb650dfab60"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a1d090d32a5cdf8b76b9e8eb650dfab60.html#a1d090d32a5cdf8b76b9e8eb650dfab60">socket_set_donot_route_on</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd)</td></tr>
<tr class="separator:a1d090d32a5cdf8b76b9e8eb650dfab60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2d51397a3f343ea4daaf96b4d203f73"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_ae2d51397a3f343ea4daaf96b4d203f73.html#ae2d51397a3f343ea4daaf96b4d203f73">socket_set_recv_buffer_size</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd, int size)</td></tr>
<tr class="separator:ae2d51397a3f343ea4daaf96b4d203f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8489cd06398f759fff9660006dc8c10d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a8489cd06398f759fff9660006dc8c10d.html#a8489cd06398f759fff9660006dc8c10d">socket_set_send_buffer_size</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd, int size)</td></tr>
<tr class="separator:a8489cd06398f759fff9660006dc8c10d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8afd26cc26824e35f1ec942d2c367c2b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a8afd26cc26824e35f1ec942d2c367c2b.html#a8afd26cc26824e35f1ec942d2c367c2b">socket_check_send_ready</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd)</td></tr>
<tr class="memdesc:a8afd26cc26824e35f1ec942d2c367c2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">检查套接字是否可写  <a href="a00089_a8afd26cc26824e35f1ec942d2c367c2b.html#a8afd26cc26824e35f1ec942d2c367c2b">更多...</a><br /></td></tr>
<tr class="separator:a8afd26cc26824e35f1ec942d2c367c2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1acbefba637d7c0c3fd77355f84d4c22"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a1acbefba637d7c0c3fd77355f84d4c22.html#a1acbefba637d7c0c3fd77355f84d4c22">socket_send</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd, const char *data, uint32_t size)</td></tr>
<tr class="separator:a1acbefba637d7c0c3fd77355f84d4c22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a4b901f1586de59d1d0a88d3326c934"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a8a4b901f1586de59d1d0a88d3326c934.html#a8a4b901f1586de59d1d0a88d3326c934">socket_recv</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> socket_fd, char *data, uint32_t size)</td></tr>
<tr class="separator:a8a4b901f1586de59d1d0a88d3326c934"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64d681185ca861b010c81db7479e9e08"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a64d681185ca861b010c81db7479e9e08.html#a64d681185ca861b010c81db7479e9e08">socket_pair</a> (<a class="el" href="a00056_a0d9e0afbf02fb6ed6c5b1415dce51b05.html#a0d9e0afbf02fb6ed6c5b1415dce51b05">socket_t</a> pair[2])</td></tr>
<tr class="memdesc:a64d681185ca861b010c81db7479e9e08"><td class="mdescLeft">&#160;</td><td class="mdescRight">socketpair  <a href="a00089_a64d681185ca861b010c81db7479e9e08.html#a64d681185ca861b010c81db7479e9e08">更多...</a><br /></td></tr>
<tr class="separator:a64d681185ca861b010c81db7479e9e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a644c735078e8cc74601a1ea5cc52a430"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a644c735078e8cc74601a1ea5cc52a430.html#a644c735078e8cc74601a1ea5cc52a430">socket_getpeername</a> (<a class="el" href="a00056_a3b7e82599367eade261456f60ebe2cd9.html#a3b7e82599367eade261456f60ebe2cd9">kchannel_ref_t</a> *channel_ref, <a class="el" href="a00056_a44e99fab0348ec54cfee119ddd9ceed6.html#a44e99fab0348ec54cfee119ddd9ceed6">kaddress_t</a> *address)</td></tr>
<tr class="memdesc:a644c735078e8cc74601a1ea5cc52a430"><td class="mdescLeft">&#160;</td><td class="mdescRight">getpeername  <a href="a00089_a644c735078e8cc74601a1ea5cc52a430.html#a644c735078e8cc74601a1ea5cc52a430">更多...</a><br /></td></tr>
<tr class="separator:a644c735078e8cc74601a1ea5cc52a430"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9d654d20270a5ee5db0c90334c08c38"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_ae9d654d20270a5ee5db0c90334c08c38.html#ae9d654d20270a5ee5db0c90334c08c38">socket_getsockname</a> (<a class="el" href="a00056_a3b7e82599367eade261456f60ebe2cd9.html#a3b7e82599367eade261456f60ebe2cd9">kchannel_ref_t</a> *channel_ref, <a class="el" href="a00056_a44e99fab0348ec54cfee119ddd9ceed6.html#a44e99fab0348ec54cfee119ddd9ceed6">kaddress_t</a> *address)</td></tr>
<tr class="memdesc:ae9d654d20270a5ee5db0c90334c08c38"><td class="mdescLeft">&#160;</td><td class="mdescRight">getsockname  <a href="a00089_ae9d654d20270a5ee5db0c90334c08c38.html#ae9d654d20270a5ee5db0c90334c08c38">更多...</a><br /></td></tr>
<tr class="separator:ae9d654d20270a5ee5db0c90334c08c38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade4f41f1cd519f2719b5114ce7801232"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00056_a0d043bbb6b8db19fea54ab9271d352b6.html#a0d043bbb6b8db19fea54ab9271d352b6">atomic_counter_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gade4f41f1cd519f2719b5114ce7801232.html#gade4f41f1cd519f2719b5114ce7801232">atomic_counter_inc</a> (<a class="el" href="a00056_a0d043bbb6b8db19fea54ab9271d352b6.html#a0d043bbb6b8db19fea54ab9271d352b6">atomic_counter_t</a> *counter)</td></tr>
<tr class="memdesc:gade4f41f1cd519f2719b5114ce7801232"><td class="mdescLeft">&#160;</td><td class="mdescRight">原子操作 - 递增  <a href="a00121_gade4f41f1cd519f2719b5114ce7801232.html#gade4f41f1cd519f2719b5114ce7801232">更多...</a><br /></td></tr>
<tr class="separator:gade4f41f1cd519f2719b5114ce7801232"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc2df03d75cf9168b72e8c5e11953437"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00056_a0d043bbb6b8db19fea54ab9271d352b6.html#a0d043bbb6b8db19fea54ab9271d352b6">atomic_counter_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gafc2df03d75cf9168b72e8c5e11953437.html#gafc2df03d75cf9168b72e8c5e11953437">atomic_counter_dec</a> (<a class="el" href="a00056_a0d043bbb6b8db19fea54ab9271d352b6.html#a0d043bbb6b8db19fea54ab9271d352b6">atomic_counter_t</a> *counter)</td></tr>
<tr class="memdesc:gafc2df03d75cf9168b72e8c5e11953437"><td class="mdescLeft">&#160;</td><td class="mdescRight">原子操作 - 递减  <a href="a00121_gafc2df03d75cf9168b72e8c5e11953437.html#gafc2df03d75cf9168b72e8c5e11953437">更多...</a><br /></td></tr>
<tr class="separator:gafc2df03d75cf9168b72e8c5e11953437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga141897cac9743394a99ff7780daa6a80"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_ga141897cac9743394a99ff7780daa6a80.html#ga141897cac9743394a99ff7780daa6a80">atomic_counter_zero</a> (<a class="el" href="a00056_a0d043bbb6b8db19fea54ab9271d352b6.html#a0d043bbb6b8db19fea54ab9271d352b6">atomic_counter_t</a> *counter)</td></tr>
<tr class="memdesc:ga141897cac9743394a99ff7780daa6a80"><td class="mdescLeft">&#160;</td><td class="mdescRight">原子操作 - 是否为零  <a href="a00121_ga141897cac9743394a99ff7780daa6a80.html#ga141897cac9743394a99ff7780daa6a80">更多...</a><br /></td></tr>
<tr class="separator:ga141897cac9743394a99ff7780daa6a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9aec45e2aae3dcc89d489947bcec36a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a9aec45e2aae3dcc89d489947bcec36a5.html#a9aec45e2aae3dcc89d489947bcec36a5">_lock_init</a> (<a class="el" href="a00056_a4c2f62ab63ab1fd49c71e52bbda0f393.html#a4c2f62ab63ab1fd49c71e52bbda0f393">klock_t</a> *lock)</td></tr>
<tr class="separator:a9aec45e2aae3dcc89d489947bcec36a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7860cb0060346d30b45ea9cb824c2be0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00056_a4c2f62ab63ab1fd49c71e52bbda0f393.html#a4c2f62ab63ab1fd49c71e52bbda0f393">klock_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a7860cb0060346d30b45ea9cb824c2be0.html#a7860cb0060346d30b45ea9cb824c2be0">lock_create</a> ()</td></tr>
<tr class="memdesc:a7860cb0060346d30b45ea9cb824c2be0"><td class="mdescLeft">&#160;</td><td class="mdescRight">建立互斥锁实例  <a href="a00089_a7860cb0060346d30b45ea9cb824c2be0.html#a7860cb0060346d30b45ea9cb824c2be0">更多...</a><br /></td></tr>
<tr class="separator:a7860cb0060346d30b45ea9cb824c2be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee8678800992b6012933740a9d7528af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_aee8678800992b6012933740a9d7528af.html#aee8678800992b6012933740a9d7528af">lock_destroy</a> (<a class="el" href="a00056_a4c2f62ab63ab1fd49c71e52bbda0f393.html#a4c2f62ab63ab1fd49c71e52bbda0f393">klock_t</a> *lock)</td></tr>
<tr class="memdesc:aee8678800992b6012933740a9d7528af"><td class="mdescLeft">&#160;</td><td class="mdescRight">销毁互斥锁  <a href="a00089_aee8678800992b6012933740a9d7528af.html#aee8678800992b6012933740a9d7528af">更多...</a><br /></td></tr>
<tr class="separator:aee8678800992b6012933740a9d7528af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86243edfa22b75eec0d653c36ba238bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a86243edfa22b75eec0d653c36ba238bf.html#a86243edfa22b75eec0d653c36ba238bf">lock_lock</a> (<a class="el" href="a00056_a4c2f62ab63ab1fd49c71e52bbda0f393.html#a4c2f62ab63ab1fd49c71e52bbda0f393">klock_t</a> *lock)</td></tr>
<tr class="memdesc:a86243edfa22b75eec0d653c36ba238bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">锁  <a href="a00089_a86243edfa22b75eec0d653c36ba238bf.html#a86243edfa22b75eec0d653c36ba238bf">更多...</a><br /></td></tr>
<tr class="separator:a86243edfa22b75eec0d653c36ba238bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a878c20be611d9e051d0e9621546f15a2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a878c20be611d9e051d0e9621546f15a2.html#a878c20be611d9e051d0e9621546f15a2">lock_trylock</a> (<a class="el" href="a00056_a4c2f62ab63ab1fd49c71e52bbda0f393.html#a4c2f62ab63ab1fd49c71e52bbda0f393">klock_t</a> *lock)</td></tr>
<tr class="memdesc:a878c20be611d9e051d0e9621546f15a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">测试锁  <a href="a00089_a878c20be611d9e051d0e9621546f15a2.html#a878c20be611d9e051d0e9621546f15a2">更多...</a><br /></td></tr>
<tr class="separator:a878c20be611d9e051d0e9621546f15a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6d02ffedf7b881d70601d1ee73c3d72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_ae6d02ffedf7b881d70601d1ee73c3d72.html#ae6d02ffedf7b881d70601d1ee73c3d72">lock_unlock</a> (<a class="el" href="a00056_a4c2f62ab63ab1fd49c71e52bbda0f393.html#a4c2f62ab63ab1fd49c71e52bbda0f393">klock_t</a> *lock)</td></tr>
<tr class="memdesc:ae6d02ffedf7b881d70601d1ee73c3d72"><td class="mdescLeft">&#160;</td><td class="mdescRight">解锁  <a href="a00089_ae6d02ffedf7b881d70601d1ee73c3d72.html#ae6d02ffedf7b881d70601d1ee73c3d72">更多...</a><br /></td></tr>
<tr class="separator:ae6d02ffedf7b881d70601d1ee73c3d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc8838f250e5f685580a508e93d3f636"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gacc8838f250e5f685580a508e93d3f636.html#gacc8838f250e5f685580a508e93d3f636">thread_runner_create</a> (<a class="el" href="a00056_a8741dac4a9f8d97603eb3a30a3473b13.html#a8741dac4a9f8d97603eb3a30a3473b13">knet_thread_func_t</a> func, void *params)</td></tr>
<tr class="memdesc:gacc8838f250e5f685580a508e93d3f636"><td class="mdescLeft">&#160;</td><td class="mdescRight">创建一个线程  <a href="a00121_gacc8838f250e5f685580a508e93d3f636.html#gacc8838f250e5f685580a508e93d3f636">更多...</a><br /></td></tr>
<tr class="separator:gacc8838f250e5f685580a508e93d3f636"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa9112d70f3e5a8dcf648ce531332f66a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gaa9112d70f3e5a8dcf648ce531332f66a.html#gaa9112d70f3e5a8dcf648ce531332f66a">thread_runner_destroy</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner)</td></tr>
<tr class="memdesc:gaa9112d70f3e5a8dcf648ce531332f66a"><td class="mdescLeft">&#160;</td><td class="mdescRight">销毁一个线程  <a href="a00121_gaa9112d70f3e5a8dcf648ce531332f66a.html#gaa9112d70f3e5a8dcf648ce531332f66a">更多...</a><br /></td></tr>
<tr class="separator:gaa9112d70f3e5a8dcf648ce531332f66a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1217c770962ea59a20fa931ad6fee0c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_ae1217c770962ea59a20fa931ad6fee0c.html#ae1217c770962ea59a20fa931ad6fee0c">_thread_func</a> (void *params)</td></tr>
<tr class="separator:ae1217c770962ea59a20fa931ad6fee0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2578ccaa4c6ce7670eabd9575204c38"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_ad2578ccaa4c6ce7670eabd9575204c38.html#ad2578ccaa4c6ce7670eabd9575204c38">_thread_loop_func</a> (void *params)</td></tr>
<tr class="separator:ad2578ccaa4c6ce7670eabd9575204c38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3540c31c89a280433080939f96da861"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_af3540c31c89a280433080939f96da861.html#af3540c31c89a280433080939f96da861">_thread_timer_loop_func</a> (void *params)</td></tr>
<tr class="separator:af3540c31c89a280433080939f96da861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af85e5a51f4ff2866c5db552529646165"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_af85e5a51f4ff2866c5db552529646165.html#af85e5a51f4ff2866c5db552529646165">_thread_multi_loop_func</a> (void *params)</td></tr>
<tr class="separator:af85e5a51f4ff2866c5db552529646165"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f94afc82ab1358bdfdaa1739ca71655"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a4f94afc82ab1358bdfdaa1739ca71655.html#a4f94afc82ab1358bdfdaa1739ca71655">thread_loop_func_pthread</a> (void *params)</td></tr>
<tr class="separator:a4f94afc82ab1358bdfdaa1739ca71655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a878593e36d665dc3334cf71e88bf93e6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a878593e36d665dc3334cf71e88bf93e6.html#a878593e36d665dc3334cf71e88bf93e6">thread_timer_loop_func_pthread</a> (void *params)</td></tr>
<tr class="separator:a878593e36d665dc3334cf71e88bf93e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd0090cfcdc1ccc4cc778a0a70d20e57"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_acd0090cfcdc1ccc4cc778a0a70d20e57.html#acd0090cfcdc1ccc4cc778a0a70d20e57">thread_multi_loop_func_pthread</a> (void *params)</td></tr>
<tr class="separator:acd0090cfcdc1ccc4cc778a0a70d20e57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75b9d7e4a1d3734e2a4c0ba298b1578c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a75b9d7e4a1d3734e2a4c0ba298b1578c.html#a75b9d7e4a1d3734e2a4c0ba298b1578c">thread_func_pthread</a> (void *params)</td></tr>
<tr class="separator:a75b9d7e4a1d3734e2a4c0ba298b1578c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae125061eb96b154766c0a414eb74065c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gae125061eb96b154766c0a414eb74065c.html#gae125061eb96b154766c0a414eb74065c">thread_runner_start</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner, int stack_size)</td></tr>
<tr class="memdesc:gae125061eb96b154766c0a414eb74065c"><td class="mdescLeft">&#160;</td><td class="mdescRight">启动线程  <a href="a00121_gae125061eb96b154766c0a414eb74065c.html#gae125061eb96b154766c0a414eb74065c">更多...</a><br /></td></tr>
<tr class="separator:gae125061eb96b154766c0a414eb74065c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4328cb11f2446f4da89374a1ae8a2f8e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_ga4328cb11f2446f4da89374a1ae8a2f8e.html#ga4328cb11f2446f4da89374a1ae8a2f8e">thread_runner_start_loop</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner, <a class="el" href="a00056_a97fc76209a58362019f1ded9169e397f.html#a97fc76209a58362019f1ded9169e397f">kloop_t</a> *loop, int stack_size)</td></tr>
<tr class="memdesc:ga4328cb11f2446f4da89374a1ae8a2f8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">在线程内运行knet_loop_run()  <a href="a00121_ga4328cb11f2446f4da89374a1ae8a2f8e.html#ga4328cb11f2446f4da89374a1ae8a2f8e">更多...</a><br /></td></tr>
<tr class="separator:ga4328cb11f2446f4da89374a1ae8a2f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga943c1e0bc78abe3d7faae24ae3670d9a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_ga943c1e0bc78abe3d7faae24ae3670d9a.html#ga943c1e0bc78abe3d7faae24ae3670d9a">thread_runner_start_timer_loop</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner, <a class="el" href="a00056_a024af2aa29615e7a811ea6c45438157d.html#a024af2aa29615e7a811ea6c45438157d">ktimer_loop_t</a> *timer_loop, int stack_size)</td></tr>
<tr class="memdesc:ga943c1e0bc78abe3d7faae24ae3670d9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">在线程内运行timer_loop_run()  <a href="a00121_ga943c1e0bc78abe3d7faae24ae3670d9a.html#ga943c1e0bc78abe3d7faae24ae3670d9a">更多...</a><br /></td></tr>
<tr class="separator:ga943c1e0bc78abe3d7faae24ae3670d9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga80fabbe64d1fc33e81053e51f69772d2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_ga80fabbe64d1fc33e81053e51f69772d2.html#ga80fabbe64d1fc33e81053e51f69772d2">thread_runner_start_multi_loop_varg</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner, int stack_size, const char *format,...)</td></tr>
<tr class="memdesc:ga80fabbe64d1fc33e81053e51f69772d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">在线程内启动多个kloop_t或ktimer_loop_t  <a href="a00121_ga80fabbe64d1fc33e81053e51f69772d2.html#ga80fabbe64d1fc33e81053e51f69772d2">更多...</a><br /></td></tr>
<tr class="separator:ga80fabbe64d1fc33e81053e51f69772d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8644b2d2ca5580e0cac7378154ae2e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gac8644b2d2ca5580e0cac7378154ae2e0.html#gac8644b2d2ca5580e0cac7378154ae2e0">thread_runner_stop</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner)</td></tr>
<tr class="memdesc:gac8644b2d2ca5580e0cac7378154ae2e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">停止线程  <a href="a00121_gac8644b2d2ca5580e0cac7378154ae2e0.html#gac8644b2d2ca5580e0cac7378154ae2e0">更多...</a><br /></td></tr>
<tr class="separator:gac8644b2d2ca5580e0cac7378154ae2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f1e994ba4c42e91e4d4b120aa8eb970"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00056_ad0ada5642d10ce71bdd90816182f9b79.html#ad0ada5642d10ce71bdd90816182f9b79">thread_id_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_ga1f1e994ba4c42e91e4d4b120aa8eb970.html#ga1f1e994ba4c42e91e4d4b120aa8eb970">thread_runner_get_id</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner)</td></tr>
<tr class="memdesc:ga1f1e994ba4c42e91e4d4b120aa8eb970"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取线程ID  <a href="a00121_ga1f1e994ba4c42e91e4d4b120aa8eb970.html#ga1f1e994ba4c42e91e4d4b120aa8eb970">更多...</a><br /></td></tr>
<tr class="separator:ga1f1e994ba4c42e91e4d4b120aa8eb970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad9d9269c695d6bd683c856479d525eb7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gad9d9269c695d6bd683c856479d525eb7.html#gad9d9269c695d6bd683c856479d525eb7">thread_runner_join</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner)</td></tr>
<tr class="memdesc:gad9d9269c695d6bd683c856479d525eb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">等待线程终止  <a href="a00121_gad9d9269c695d6bd683c856479d525eb7.html#gad9d9269c695d6bd683c856479d525eb7">更多...</a><br /></td></tr>
<tr class="separator:gad9d9269c695d6bd683c856479d525eb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a56e5d1203f6697a6579202919aa048"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_ga3a56e5d1203f6697a6579202919aa048.html#ga3a56e5d1203f6697a6579202919aa048">thread_runner_check_start</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner)</td></tr>
<tr class="memdesc:ga3a56e5d1203f6697a6579202919aa048"><td class="mdescLeft">&#160;</td><td class="mdescRight">检查线程是否正在运行  <a href="a00121_ga3a56e5d1203f6697a6579202919aa048.html#ga3a56e5d1203f6697a6579202919aa048">更多...</a><br /></td></tr>
<tr class="separator:ga3a56e5d1203f6697a6579202919aa048"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2126b5da850ec506d0909eb81f9a50dc"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_ga2126b5da850ec506d0909eb81f9a50dc.html#ga2126b5da850ec506d0909eb81f9a50dc">thread_runner_get_params</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner)</td></tr>
<tr class="memdesc:ga2126b5da850ec506d0909eb81f9a50dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">取得线程运行参数，thread_runner_create()第二个参数  <a href="a00121_ga2126b5da850ec506d0909eb81f9a50dc.html#ga2126b5da850ec506d0909eb81f9a50dc">更多...</a><br /></td></tr>
<tr class="separator:ga2126b5da850ec506d0909eb81f9a50dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecf10907eee00ec0e807271c906a6645"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00056_ad0ada5642d10ce71bdd90816182f9b79.html#ad0ada5642d10ce71bdd90816182f9b79">thread_id_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gaecf10907eee00ec0e807271c906a6645.html#gaecf10907eee00ec0e807271c906a6645">thread_get_self_id</a> ()</td></tr>
<tr class="memdesc:gaecf10907eee00ec0e807271c906a6645"><td class="mdescLeft">&#160;</td><td class="mdescRight">取得线程ID  <a href="a00121_gaecf10907eee00ec0e807271c906a6645.html#gaecf10907eee00ec0e807271c906a6645">更多...</a><br /></td></tr>
<tr class="separator:gaecf10907eee00ec0e807271c906a6645"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabddf3ac30aac3f22f8c53b7517e6eb35"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gabddf3ac30aac3f22f8c53b7517e6eb35.html#gabddf3ac30aac3f22f8c53b7517e6eb35">thread_sleep_ms</a> (int ms)</td></tr>
<tr class="memdesc:gabddf3ac30aac3f22f8c53b7517e6eb35"><td class="mdescLeft">&#160;</td><td class="mdescRight">睡眠  <a href="a00121_gabddf3ac30aac3f22f8c53b7517e6eb35.html#gabddf3ac30aac3f22f8c53b7517e6eb35">更多...</a><br /></td></tr>
<tr class="separator:gabddf3ac30aac3f22f8c53b7517e6eb35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76839139180a3f0d0b017a5f39801936"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_ga76839139180a3f0d0b017a5f39801936.html#ga76839139180a3f0d0b017a5f39801936">thread_set_tls_data</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner, void *data)</td></tr>
<tr class="memdesc:ga76839139180a3f0d0b017a5f39801936"><td class="mdescLeft">&#160;</td><td class="mdescRight">设置线程本地存储  <a href="a00121_ga76839139180a3f0d0b017a5f39801936.html#ga76839139180a3f0d0b017a5f39801936">更多...</a><br /></td></tr>
<tr class="separator:ga76839139180a3f0d0b017a5f39801936"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5bb2dd001c42fdbdcdcb2048f76ae89"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00121_gaf5bb2dd001c42fdbdcdcb2048f76ae89.html#gaf5bb2dd001c42fdbdcdcb2048f76ae89">thread_get_tls_data</a> (<a class="el" href="a00056_a4f78c259c9527c821f1a6f87495dd339.html#a4f78c259c9527c821f1a6f87495dd339">kthread_runner_t</a> *runner)</td></tr>
<tr class="memdesc:gaf5bb2dd001c42fdbdcdcb2048f76ae89"><td class="mdescLeft">&#160;</td><td class="mdescRight">取得线程本地存储  <a href="a00121_gaf5bb2dd001c42fdbdcdcb2048f76ae89.html#gaf5bb2dd001c42fdbdcdcb2048f76ae89">更多...</a><br /></td></tr>
<tr class="separator:gaf5bb2dd001c42fdbdcdcb2048f76ae89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a528d27a7218cb2fdabf81ca343e24fc9"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a528d27a7218cb2fdabf81ca343e24fc9.html#a528d27a7218cb2fdabf81ca343e24fc9">time_get_milliseconds</a> ()</td></tr>
<tr class="memdesc:a528d27a7218cb2fdabf81ca343e24fc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取当前毫秒  <a href="a00089_a528d27a7218cb2fdabf81ca343e24fc9.html#a528d27a7218cb2fdabf81ca343e24fc9">更多...</a><br /></td></tr>
<tr class="separator:a528d27a7218cb2fdabf81ca343e24fc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cab12b4908938ca999206a67c8ee032"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a3cab12b4908938ca999206a67c8ee032.html#a3cab12b4908938ca999206a67c8ee032">time_gettimeofday</a> (struct timeval *tp, void *tzp)</td></tr>
<tr class="memdesc:a3cab12b4908938ca999206a67c8ee032"><td class="mdescLeft">&#160;</td><td class="mdescRight">gettimeofday  <a href="a00089_a3cab12b4908938ca999206a67c8ee032.html#a3cab12b4908938ca999206a67c8ee032">更多...</a><br /></td></tr>
<tr class="separator:a3cab12b4908938ca999206a67c8ee032"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d3f7fda67a3c61f767f7b2dbfcbe4ee"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a6d3f7fda67a3c61f767f7b2dbfcbe4ee.html#a6d3f7fda67a3c61f767f7b2dbfcbe4ee">time_get_string</a> (char *buffer, int size)</td></tr>
<tr class="memdesc:a6d3f7fda67a3c61f767f7b2dbfcbe4ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">取得当前可阅读时间字符串  <a href="a00089_a6d3f7fda67a3c61f767f7b2dbfcbe4ee.html#a6d3f7fda67a3c61f767f7b2dbfcbe4ee">更多...</a><br /></td></tr>
<tr class="separator:a6d3f7fda67a3c61f767f7b2dbfcbe4ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5eb6de730bc28be3fbc402b9841c1819"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a5eb6de730bc28be3fbc402b9841c1819.html#a5eb6de730bc28be3fbc402b9841c1819">time_get_microseconds</a> ()</td></tr>
<tr class="memdesc:a5eb6de730bc28be3fbc402b9841c1819"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取当前微秒  <a href="a00089_a5eb6de730bc28be3fbc402b9841c1819.html#a5eb6de730bc28be3fbc402b9841c1819">更多...</a><br /></td></tr>
<tr class="separator:a5eb6de730bc28be3fbc402b9841c1819"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b1df51bc127460a3bf25949068bfe92"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a2b1df51bc127460a3bf25949068bfe92.html#a2b1df51bc127460a3bf25949068bfe92">uuid_create</a> ()</td></tr>
<tr class="memdesc:a2b1df51bc127460a3bf25949068bfe92"><td class="mdescLeft">&#160;</td><td class="mdescRight">产生一个伪UUID，只保证本进程内不重复  <a href="a00089_a2b1df51bc127460a3bf25949068bfe92.html#a2b1df51bc127460a3bf25949068bfe92">更多...</a><br /></td></tr>
<tr class="separator:a2b1df51bc127460a3bf25949068bfe92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200dc3080cb5e5b5320c9f61ecccd31b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a200dc3080cb5e5b5320c9f61ecccd31b.html#a200dc3080cb5e5b5320c9f61ecccd31b">uuid_get_high32</a> (uint64_t uuid)</td></tr>
<tr class="memdesc:a200dc3080cb5e5b5320c9f61ecccd31b"><td class="mdescLeft">&#160;</td><td class="mdescRight">取得UUID高32位  <a href="a00089_a200dc3080cb5e5b5320c9f61ecccd31b.html#a200dc3080cb5e5b5320c9f61ecccd31b">更多...</a><br /></td></tr>
<tr class="separator:a200dc3080cb5e5b5320c9f61ecccd31b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c98a04f00772c05a1f51afc185f7513"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a6c98a04f00772c05a1f51afc185f7513.html#a6c98a04f00772c05a1f51afc185f7513">path_getcwd</a> (char *buffer, int size)</td></tr>
<tr class="memdesc:a6c98a04f00772c05a1f51afc185f7513"><td class="mdescLeft">&#160;</td><td class="mdescRight">取得当前工作目录  <a href="a00089_a6c98a04f00772c05a1f51afc185f7513.html#a6c98a04f00772c05a1f51afc185f7513">更多...</a><br /></td></tr>
<tr class="separator:a6c98a04f00772c05a1f51afc185f7513"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e3ede072c59452900afcb1334611dac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00056_aeaea39e7ef5adeec1efaee3eee6b12ff.html#aeaea39e7ef5adeec1efaee3eee6b12ff">sys_error_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a2e3ede072c59452900afcb1334611dac.html#a2e3ede072c59452900afcb1334611dac">sys_get_errno</a> ()</td></tr>
<tr class="memdesc:a2e3ede072c59452900afcb1334611dac"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取最新的系统错误码  <a href="a00089_a2e3ede072c59452900afcb1334611dac.html#a2e3ede072c59452900afcb1334611dac">更多...</a><br /></td></tr>
<tr class="separator:a2e3ede072c59452900afcb1334611dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1f59aa518d342661072356abbbb5e85"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_ab1f59aa518d342661072356abbbb5e85.html#ab1f59aa518d342661072356abbbb5e85">htonll</a> (uint64_t ui64)</td></tr>
<tr class="memdesc:ab1f59aa518d342661072356abbbb5e85"><td class="mdescLeft">&#160;</td><td class="mdescRight">字节序转换 - 主机序到网络序  <a href="a00089_ab1f59aa518d342661072356abbbb5e85.html#ab1f59aa518d342661072356abbbb5e85">更多...</a><br /></td></tr>
<tr class="separator:ab1f59aa518d342661072356abbbb5e85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebdeac120dd80e9450e54e6f18151f45"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_aebdeac120dd80e9450e54e6f18151f45.html#aebdeac120dd80e9450e54e6f18151f45">ntohll</a> (uint64_t ui64)</td></tr>
<tr class="memdesc:aebdeac120dd80e9450e54e6f18151f45"><td class="mdescLeft">&#160;</td><td class="mdescRight">字节序转换 - 网络序到主机序  <a href="a00089_aebdeac120dd80e9450e54e6f18151f45.html#aebdeac120dd80e9450e54e6f18151f45">更多...</a><br /></td></tr>
<tr class="separator:aebdeac120dd80e9450e54e6f18151f45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa5f51532b5e8589a2af4a949dfcb46b"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_aaa5f51532b5e8589a2af4a949dfcb46b.html#aaa5f51532b5e8589a2af4a949dfcb46b">get_channel_cb_event_string</a> (<a class="el" href="a00056_a2fd2faf971268f5b682ab375c455f7c9.html#a2fd2faf971268f5b682ab375c455f7c9">knet_channel_cb_event_e</a> e)</td></tr>
<tr class="memdesc:aaa5f51532b5e8589a2af4a949dfcb46b"><td class="mdescLeft">&#160;</td><td class="mdescRight">取得管道回调事件描述  <a href="a00089_aaa5f51532b5e8589a2af4a949dfcb46b.html#aaa5f51532b5e8589a2af4a949dfcb46b">更多...</a><br /></td></tr>
<tr class="separator:aaa5f51532b5e8589a2af4a949dfcb46b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c666a6bdd27f2bdb2202ffd4fb8899e"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a3c666a6bdd27f2bdb2202ffd4fb8899e.html#a3c666a6bdd27f2bdb2202ffd4fb8899e">get_channel_cb_event_name</a> (<a class="el" href="a00056_a2fd2faf971268f5b682ab375c455f7c9.html#a2fd2faf971268f5b682ab375c455f7c9">knet_channel_cb_event_e</a> e)</td></tr>
<tr class="memdesc:a3c666a6bdd27f2bdb2202ffd4fb8899e"><td class="mdescLeft">&#160;</td><td class="mdescRight">取得管道回调事件名字  <a href="a00089_a3c666a6bdd27f2bdb2202ffd4fb8899e.html#a3c666a6bdd27f2bdb2202ffd4fb8899e">更多...</a><br /></td></tr>
<tr class="separator:a3c666a6bdd27f2bdb2202ffd4fb8899e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf5ac9c0270bd67e64f697d7fcf5e9ea"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_aaf5ac9c0270bd67e64f697d7fcf5e9ea.html#aaf5ac9c0270bd67e64f697d7fcf5e9ea">ltoa</a> (long l, char *buffer, int size)</td></tr>
<tr class="memdesc:aaf5ac9c0270bd67e64f697d7fcf5e9ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">long转为char*  <a href="a00089_aaf5ac9c0270bd67e64f697d7fcf5e9ea.html#aaf5ac9c0270bd67e64f697d7fcf5e9ea">更多...</a><br /></td></tr>
<tr class="separator:aaf5ac9c0270bd67e64f697d7fcf5e9ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97f61794357611fc4017112c868420b9"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089_a97f61794357611fc4017112c868420b9.html#a97f61794357611fc4017112c868420b9">lltoa</a> (long long ll, char *buffer, int size)</td></tr>
<tr class="memdesc:a97f61794357611fc4017112c868420b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">long long 转为char*  <a href="a00089_a97f61794357611fc4017112c868420b9.html#a97f61794357611fc4017112c868420b9">更多...</a><br /></td></tr>
<tr class="separator:a97f61794357611fc4017112c868420b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
生成于 2015年 七月 27日 星期一 14:33:20 , 为 knet使用  &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
